from abc import ABC, abstractmethod
import numpy as np
import cv2

class BaseInferenceEngine(ABC):
    @abstractmethod
    def load_model(self, model_path: str) -> bool:
        """Loads the model from the specified path."""
        pass

    @abstractmethod
    def run_inference(self, img_path: str) -> dict:
        """Runs inference on the input image and returns results in a unified format."""
        pass
